#ifndef __WRAP_H_
#define __WRAP_H_

#include <iostream>
#include <stdio.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <errno.h>
#include <unistd.h>
#include <string.h>
#include <sys/types.h>
#include <arpa/inet.h>   
/*
104规约的报文帧分为三类，I帧，S帧，U帧； 
I帧为信息帧，用于传输数据，长度大于6个字节，为长帧； 
S帧为确认帧，用于确认接收的I帧，长度为6个字节，为短帧； 
U帧为控制帧，用于控制启动/停止/测试，长度为6个字节，为短帧；   
长帧报文分为APCI和ASDU两个部分，统称为APDU，而短帧报文只有APCI部分； 
APCI的6个字节的构成：起动字符68H，1个字节；后面的报文长度，1个字节（最大253）；
控制域位组，4个字节；区分I,S,U帧： 

*/


void perr_exit(const char *s);
int Accept(int fd, struct sockaddr *sa, socklen_t *salenptr);
int Socket(int family, int type, int protocol);
void Bind(int fd, const struct sockaddr *sa, socklen_t salen);
void Listen(int fd, int backlog);
void Connect(int fd, const struct sockaddr *sa, socklen_t salen);
void *do_work(void *arg);


#endif